
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.*;

public class Test_240302 {
	// 处理时间格式, 加入输入为17:48:19 21:57:24(+1) 要求输出两者之差
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in); // 从键盘读取数据
		int T = scanner.nextInt(); // 读取数据量
		scanner.nextLine(); // 读取一行数据
        for (int i = 0; i < T; i++) {
            // 处理去程与回程的起降时间
            int time = subtract(scanner.nextLine()) + subtract(scanner.nextLine());
            time /= 2; // 得到飞行时间，接下来格式化输出
            LocalTime ans = LocalTime.of(time / 3600, time % 3600 / 60, time % 60);
            System.out.println(ans);
        }
	}
	
	// 计算起降差
	public static int subtract(String s) {
		// 对行数据进行处理,分段放入数组
		String[] sss = s.split(" ");
		int value = getTime(sss[1]) - getTime(sss[0]); // t2-t1
		// 如果带有(+1)、(+2)等信息
		if(sss.length > 2) {
			String temp = sss[2].substring(2, 3); // 获取次日还是后日
			value = value + Integer.parseInt(temp)*24*3600;
		}
		return value;
	}
	
	// 对数据进行处理，将时间转换为秒
	public static int getTime(String s) {
		// s=17:48:19
		// 将字符串s转换为指定格式formatter的形式并解析为locaDateTime对象
		LocalTime time = LocalTime.parse(s);
		// LocalTime time = LocalTime.parse(s, DateTimeFormatter.ofPattern("HH:mm:ss"));
		// System.out.println(time);
		int ss = time.getHour()*3600+time.getMinute()*60+time.getSecond(); // 转换为秒
		return ss;
	}
}
